Skip to content

Conversation

@lucastheis
Copy link

Thanks for creating Harper, which looks great! The most common challenge we're facing around grammar in our code base is to enforce consistent use of sentence casing (i.e., prevent the use of title case in headings), and I am hoping harper can help with that. But I didn't see a rule to check for sentence case capitalization.

I don't usually write Rust and this feature was mainly implemented by Cursor. I don't necessarily expect this PR to be merged but perhaps it can serve as a starting point or basis for discussion.

Issues

None, afaict.

Description

This PR adds a rule enforcing sentence case, including in headings. It checks whether every capitalized word is either a proper noun, at the beginning of a sentence, or preceded by a quote or sentence terminator. The rule disabled by default.

Demo

None

How Has This Been Tested?

In addition to (automatically written) unit tests, I compiled harper.js and ran some manual tests with it.

Checklist

  • I have performed a self-review of my own code
  • I have added tests to cover my changes

Copy link
Collaborator

@elijah-potter elijah-potter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea here, but it definitely needs some polish. Would you mind taking a look at the title_case module? I would like to replicate the API from there for simplicity and flexibility. I also think that you need a more nuanced decision on how to handle proper nouns and the like. Cursor didn't do a bad job, but there are some real decisions to be made before we can merge this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants